package ooprontuariomedicointeligente;

import java.util.InputMismatchException;
import java.util.Scanner;

public class Interacao {  /*
     * Classe utilizada para realizar a parte de interface com o Usuário.Metódos
     * que envolvem interação com o usuário estão contidos nessa classe
     */


    public void Escolha() { //Método utilizado para que o usuário escolha o que deseja fazer (menu)
        Interacao pmi = new Interacao();
        try {
            int escolha;
            boolean flag = true;

            while (flag == true) {

                System.out.println("Digite valor do tipo de cadastro da opção desejada: \n"
                        + "1 - Paciente \n"
                        + "2 - Consulta \n"
                        + "3 - Doença \n"
                        + "4 - Medicamento \n"
                        + "5 - Sair do Programa \n");

                Scanner tec2 = new Scanner(System.in);
                escolha = tec2.nextInt();

                if (escolha == 1) {

                    pmi.cadastraPaciente();
                    flag = false;
                } else if (escolha == 2) {

                    flag = false;
                } else if (escolha == 3) {
                    pmi.cadastraDoença();
                    flag = false;
                } else if (escolha == 4) {
                    pmi.cadastraMedicamento();
                    flag = false;
                } else if (escolha == 5) {
                    System.out.println("########## Muito obrigado, aplicação terminada. ##########");
                    flag = false;
                    System.exit(24);
                } else {
                    System.out.println("Opção desejada inválida!");
                    flag = true;
                }
            }
        } catch (InputMismatchException erro) {
            System.out.println("Erro " + erro + ", digite apenas números. \n");

        }

    }

    public Paciente cadastraPaciente() { //Método utilizado para cadastrar os pacientes
        Paciente p = new Paciente();
        Scanner c = new Scanner(System.in);

        try {

            System.out.println("\n Digite o nome do paciente");
            String nome = c.nextLine();
            p.setNome(nome);
            System.out.println("\n Digite a idade do paciente");
            int idade = c.nextInt();
            p.setIdade(idade);

        } catch (InputMismatchException erro) {
            System.out.println("Erro " + erro + "\n");
        }

        return p;
    }

    public Doenca cadastraDoença() { //Método utilizado para cadastrar doenças
        Doenca d = new Doenca();
        d.medicamento = new Medicamento();
        Scanner c = new Scanner(System.in);
        try {
            System.out.println("Digite o nome da doença");
            String nome = c.nextLine();
            d.setNome(nome);
            System.out.println("Digite o sintoma da doença");
            String sint = c.nextLine();
            d.setSintomas(sint);
            System.out.println("Digite o medicamento indicado para esta doença: ");
            String med = c.nextLine();
            d.medicamento.setNome(med);
        } catch (InputMismatchException erro) {
            System.out.println("Erro " + erro + ", digite apenas letras. \n");

        }
        Interacao nao_finaliza = new Interacao();
        nao_finaliza.Escolha();
        return d;
    }

    public Consulta cadastraConsulta() { //Método utilizado para cadastrar consultas
        Consulta con = new Consulta();
        con.doença = new Doenca();
        Scanner c = new Scanner(System.in);

        try {





            con.setPaciente(cadastraPaciente());
            System.out.println("Digite o sintoma do paciente");
            String sint = c.nextLine();
            con.doença.setSintomas(sint);



        } catch (InputMismatchException erro) {
            System.out.println("Erro " + erro + ", digite apenas letras. \n");
        }

        return con;

    }

    public Medicamento cadastraMedicamento() { //Método utilizado para cadastrar medicamentos
        Medicamento med = new Medicamento();
        Scanner c = new Scanner(System.in);
        try {
            System.out.println("Digite o nome do medicamento");
            String nomeMed = c.nextLine();
            med.setNome(nomeMed);
            System.out.println("Digite a descrição do medicamento");
            String descMed = c.nextLine();
            med.setDescricao(descMed);
        } catch (InputMismatchException erro) {
            System.out.println("Erro " + erro + ", digite apenas letras. \n");
        }
        Interacao nao_finaliza = new Interacao();
        nao_finaliza.Escolha();
        return med;

    }
}